Multi-threading may allow high-throughput computer architectures. A thread may refer to a set of instructions that may be executed by a processor.
At different points in time, one thread may be executing and another thread may be pending, and thread switching may refer to switching between executing a currently running thread to executing a pending thread.
Threads that are currently being executed by a processor may be referred to as executing threads, running threads, or active threads. Threads that are not currently being executed by a processor may be referred to as pending threads, inactive threads, non-executing threads, or non-running threads.
System performance may be varied based on the thread switching algorithm used in a particular system. System designers are continually searching for alternate ways to provide thread switching in a multi-threaded computer system.
It will be appreciated that for simplicity and clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements are exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals have been repeated among the figures to indicate corresponding or analogous elements.